import 'package:acgn_pioneer/components/birthday.dart';

import '../public.dart';
import 'dart:io';
import 'package:path_provider/path_provider.dart';

class TestPage extends StatefulWidget {
  @override
  _TestPageState createState() => _TestPageState();
}

class _TestPageState extends State<TestPage> {
  ThemeProvider theme;

  Future<Directory> _tempDirectory;
  Future<Directory> _appSupportDirectory;
  Future<Directory> _appLibraryDirectory;
  Future<Directory> _appDocumentsDirectory;
  Future<Directory> _externalDocumentsDirectory;
  Future<List<Directory>> _externalStorageDirectories;
  Future<List<Directory>> _externalCacheDirectories;

  void _requestTempDirectory() {
    setState(() {
      _tempDirectory = getTemporaryDirectory();
    });
  }

  Widget _buildDirectory(
      BuildContext context, AsyncSnapshot<Directory> snapshot) {
    Text text = const Text('');
    if (snapshot.connectionState == ConnectionState.done) {
      if (snapshot.hasError) {
        text = Text('Error: ${snapshot.error}');
      } else if (snapshot.hasData) {
        text = Text('path: ${snapshot.data.path}');
      } else {
        text = const Text('path unavailable');
      }
    }
    return Padding(padding: const EdgeInsets.all(16.0), child: text);
  }

  Widget _buildDirectories(
      BuildContext context, AsyncSnapshot<List<Directory>> snapshot) {
    Text text = const Text('');
    if (snapshot.connectionState == ConnectionState.done) {
      if (snapshot.hasError) {
        text = Text('Error: ${snapshot.error}');
      } else if (snapshot.hasData) {
        final String combined =
            snapshot.data.map((Directory d) => d.path).join(', ');
        text = Text('paths: $combined');
      } else {
        text = const Text('path unavailable');
      }
    }
    return Padding(padding: const EdgeInsets.all(16.0), child: text);
  }

  void _requestAppDocumentsDirectory() {
    setState(() {
      _appDocumentsDirectory = getApplicationDocumentsDirectory();
    });
  }

  void _requestAppSupportDirectory() {
    setState(() {
      _appSupportDirectory = getApplicationSupportDirectory();
    });
  }

  void _requestAppLibraryDirectory() {
    setState(() {
      _appLibraryDirectory = getLibraryDirectory();
    });
  }

  void _requestExternalStorageDirectory() {
    setState(() {
      _externalDocumentsDirectory = getExternalStorageDirectory();
    });
  }

  void _requestExternalStorageDirectories(StorageDirectory type) {
    setState(() {
      _externalStorageDirectories = getExternalStorageDirectories(type: type);
    });
  }

  void _requestExternalCacheDirectories() {
    setState(() {
      _externalCacheDirectories = getExternalCacheDirectories();
    });
  }

  _onPressed(res) {
    print('---------->>>>>$res');
  }

  @override
  Widget build(BuildContext context) {
    theme = Provider.of<ThemeProvider>(context);
    return Scaffold(
        backgroundColor: theme.primaryColor,
        appBar: AppBar(
          title: Text('test'),
        ),
        body: BirthdayPicker(
          onPressed: _onPressed,
        )

        // Center(
        //   child: ListView(
        //     children: <Widget>[
        //       Padding(
        //         padding: const EdgeInsets.all(16.0),
        //         child: ElevatedButton(
        //           child: const Text('Get Temporary Directory'),
        //           onPressed: _requestTempDirectory,
        //         ),
        //       ),
        //       FutureBuilder<Directory>(
        //           future: _tempDirectory, builder: _buildDirectory),
        //       Padding(
        //         padding: const EdgeInsets.all(16.0),
        //         child: ElevatedButton(
        //           child: const Text('Get Application Documents Directory'),
        //           onPressed: _requestAppDocumentsDirectory,
        //         ),
        //       ),
        //       FutureBuilder<Directory>(
        //           future: _appDocumentsDirectory, builder: _buildDirectory),
        //       Padding(
        //         padding: const EdgeInsets.all(16.0),
        //         child: ElevatedButton(
        //           child: const Text('Get Application Support Directory'),
        //           onPressed: _requestAppSupportDirectory,
        //         ),
        //       ),
        //       FutureBuilder<Directory>(
        //           future: _appSupportDirectory, builder: _buildDirectory),
        //       Padding(
        //         padding: const EdgeInsets.all(16.0),
        //         child: ElevatedButton(
        //           child: const Text('Get Application Library Directory'),
        //           onPressed: _requestAppLibraryDirectory,
        //         ),
        //       ),
        //       FutureBuilder<Directory>(
        //           future: _appLibraryDirectory, builder: _buildDirectory),
        //       Padding(
        //         padding: const EdgeInsets.all(16.0),
        //         child: ElevatedButton(
        //           child: Text(
        //               '${Platform.isIOS ? "External directories are unavailable " "on iOS" : "Get External Storage Directory"}'),
        //           onPressed:
        //               Platform.isIOS ? null : _requestExternalStorageDirectory,
        //         ),
        //       ),
        //       FutureBuilder<Directory>(
        //           future: _externalDocumentsDirectory, builder: _buildDirectory),
        //       Column(children: <Widget>[
        //         Padding(
        //           padding: const EdgeInsets.all(16.0),
        //           child: ElevatedButton(
        //             child: Text(
        //                 '${Platform.isIOS ? "External directories are unavailable " "on iOS" : "Get External Storage Directories"}'),
        //             onPressed: Platform.isIOS
        //                 ? null
        //                 : () {
        //                     _requestExternalStorageDirectories(
        //                       StorageDirectory.music,
        //                     );
        //                   },
        //           ),
        //         ),
        //       ]),
        //       FutureBuilder<List<Directory>>(
        //           future: _externalStorageDirectories,
        //           builder: _buildDirectories),
        //       Column(children: <Widget>[
        //         Padding(
        //           padding: const EdgeInsets.all(16.0),
        //           child: ElevatedButton(
        //             child: Text(
        //                 '${Platform.isIOS ? "External directories are unavailable " "on iOS" : "Get External Cache Directories"}'),
        //             onPressed:
        //                 Platform.isIOS ? null : _requestExternalCacheDirectories,
        //           ),
        //         ),
        //       ]),
        //       FutureBuilder<List<Directory>>(
        //           future: _externalCacheDirectories, builder: _buildDirectories),
        //     ],
        //   ),
        // ),

        );
  }
}
